home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 February / PCWorld_2000-02_cd.bin / Software / Servis / FFE / COMM.SWG / 0013_QWKE (Extended?) v1.0.pas < prev    next >
Pascal/Delphi Source File  |  1997-05-11  |  16KB  |  425 lines

  1.  
  2.                            QWKE Specifications 1.0
  3.       (also known as EQWK - pronounced Quicky, and E-quick respectively)
  4.  
  5.  
  6.                          Copyright 1994, Peter Rocca
  7.                              Fidonet 1:2401/123
  8.                       (519) 660-8981 / (519) 660-6908
  9.                                  28,800 Baud
  10.  
  11.  
  12.  This documentation may be freely used to enhance/create 1st, 2nd or 3rd
  13.  party applications or utilities without any legal obligation to the author.
  14.  Please do not extend or further the QWKE without contacting Pete Rocca, in
  15.  order to keep the standard from becoming a 'non-standard'. - Thank you.
  16.  
  17.  
  18.  QWKE Specifications
  19.  ───────────────────
  20.  
  21.  All files and formats match the QWK 1.0 standards.  If you are not familiar
  22.  with them, I would suggest getting QWKLAY??.ZIP by Patrick Y. Lee. (it is
  23.  freqable from my system)
  24.  
  25.  The only differences to the standard QWK format lay in four files.
  26.  
  27.          CONTROL.DAT  - conference area names are no longer limited
  28.                         to 13 characters, they are limited to 255
  29.                         characters now.
  30.  
  31.          DOOR.ID      - contains additional CONTROLTYPE names.
  32.  
  33.          TOREADER.EXT - a file created by the door that contains
  34.                         additional information for the reader.
  35.  
  36.          TODOOR.EXT   - a file created by the reader that contains
  37.                         additional information for the door.
  38.  
  39.  In addition, certain kludge lines should be imported to messages when
  40.  downloading, if their length exceeds 25 characters.
  41.  
  42.    These kludges are...
  43.  
  44.                            To:
  45.                            From:
  46.                            Subject:
  47.  
  48.    ...they should be at the top of the message, and terminated by
  49.    either a carriage return, or the 'π' QWK terminator.  At the end
  50.    of the last imported kludge, there should be a blank line, however
  51.    you should program to handle if one is not present.  Additional
  52.    kludge names can be created, but your reader/door should at least
  53.    handle these three.
  54.  
  55.    Also, the kludge lines To/Subject should be imported into the message
  56.    fields when posting the messages. (uploading)  The From kludge can
  57.    be accepted, but remember to check the security of it (ie make sure
  58.    that the name is allowed, ie alias base, etc)  Also, regarding the
  59.    To: kludge... keep in mind that UUCP software likes the To: line
  60.    left in the first line of a message, therefore it should not be
  61.    removed from the message if this message is destined to be sent
  62.    through an UUCP gateway.
  63.  
  64.    A sample message with kludge lines might look like:
  65.  
  66.      1       10        20   25
  67.      |---+----|----+----|----|
  68.   TO:PETER ROCCAZISKINZIDONING
  69. FROM:BOB WILIKERS
  70. SUBJ:This is a test of the sys                       <--- HEADER
  71.      --------------------------------------------------------------------
  72.      To: PETER ROCCAZISKINZIDONINGLY                 <--- MESSAGE TEXT
  73.      Subject: This is a test of the system, as you can see!
  74.      <blank line>
  75.      The real message starts here now, but it was short, so
  76.      see you later.
  77.  
  78.    As you can see, only the To/Subject lines were imported, since the
  79.    From line did not exceed the 25 character limit.
  80.  
  81. ══════════════════════════════════════════════════════════════════════════════
  82.  
  83.  File: TOREADER.EXT
  84.  ──────────────────
  85.  
  86.   Desc: This file is simply an ASCII text file that is included
  87.         in the QWK packet, and contains information used by the
  88.         QWK reader. (created by the mail door)
  89.  
  90.  Each line has an identifier, followed by the relevant information
  91.  for the extended information. (Arguments in < > are required,
  92.  and ones in [ ] are optional)
  93.  
  94.    ALIAS     <users' alias name>
  95.    AREA      <conference#> <settings>
  96.    BULL      <filename> <description>
  97.    ATTACH    <filename> <conference#> <message#>
  98.    FILE      <filename> [description]
  99.    KEYWORD   <keyword>
  100.    FILTER    <filter>
  101.    TWIT      <twit>
  102.  
  103. ──────────────────────────────────────────────────────────────────────────────
  104.  
  105. Identifier: ALIAS <users' alias name>
  106.  
  107.    This simply passes the users' alias name to the door in order to be
  108.    able to present it to the user when entering mail in 'alias' areas.
  109.  
  110.    An example would be: ALIAS Rawhide
  111.  
  112. ──────────────────────────────────────────────────────────────────────────────
  113.  
  114. Identifier: AREA <conference#> <settings>
  115.  
  116.    This presents a list of selected areas (or all areas optionall), and
  117.    what the flag settings for each area are.  The <conference#> is the
  118.    number of the area that is selected and the <settings> contains the
  119.    flags for that area.
  120.  
  121.    The possible flags are:
  122.  
  123.        a   for all messages
  124.        p   for personal messages
  125.        g   for general messages (personal and those addressed to 'ALL')
  126.  
  127.    In addition, some mail doors can add the following flags:
  128.  
  129.        w   if this area should include mail written by themselves
  130.        k   if this area should be included in keyword searches
  131.        f   if this area should be included in filter exclude searches
  132.        F   if this area is forced to be read
  133.        B   if this area is blocked from getting replies
  134.  
  135.    In further addition, area information should be given.
  136.  
  137.        P   if the area is private mail only
  138.        O   if the area is public mail only
  139.        X   if either private or public mail is allowed
  140.        R   if the area is read-only
  141.        Z   if the area doesn't allow replies
  142.  
  143.        L   if the area is a local message area
  144.        N   if the area is a netmail area
  145.        E   if the area is an echomail area
  146.        I   if the area is an internet area
  147.        U   if the area is an newsgroup area
  148.  
  149.        H   if the area is an handles only message area
  150.        A   if the area allows messages 'from' any name (pick-an-alias)
  151.        &   if the area allows file attaches
  152.            (does not override CONTROLTYPE=ALLOWATTACH)
  153.  
  154.    Again the door should enforce security to messages with private
  155.    flags and/or different names to ensure that they are allowed.
  156.  
  157.    For example, if a user had 4 areas selected, it might look like this:
  158.  
  159.    AREA 23 awOU
  160.    AREA 31 aFPLA
  161.    AREA 44 pkPN&
  162.    AREA 172 gwkfPI
  163.  
  164.    ...please note that the flags ARE case sensitive & and any unknown
  165.    flags should be ignored.
  166.  
  167. ──────────────────────────────────────────────────────────────────────────────
  168.  
  169. Identifier: BULL <filename> <description>
  170.  
  171.    This is a way of describing the bulletins a little better than
  172.    the file name BLT-x.y method.  The actual files should still be
  173.    in the BLT-x.y format to ensure backward compatibility, but by
  174.    describing the filenames here, you can have something like
  175.    looks like:
  176.  
  177.         Bulletins
  178.           - System Stats
  179.           - Top Users
  180.           - Contest galore!
  181.  
  182.    Instead of:
  183.  
  184.         Bulletins
  185.           - BLT-1.4
  186.           - BLT-3.2
  187.           - BLT-6.1
  188.  
  189.    In this example, the TOREADER.EXT file would have three lines
  190.    added to create these descriptions:
  191.  
  192.    BULL BLT-1.4 System Stats
  193.    BULL BLT-3.2 Top Users
  194.    BULL BLT-6.1 Contest galore!
  195.  
  196. ──────────────────────────────────────────────────────────────────────────────
  197.  
  198. Identifier: ATTACH <filename> <conference#> <message#>
  199.  
  200.    This is a method used to identify which messages have files attached
  201.    that were downloaded with the packet.  It is upto the mail door
  202.    to decide whether or not to send attached files, this is simply a
  203.    method for the reader to acknowledge such files.
  204.  
  205.    For an example:  Say that message number 782 in conference 12 had
  206.    the file TEST.ZIP attached to it, and the mail door included this
  207.    TEST.ZIP file in the BOARDID.QWK archive.  The TOREADER.EXT file
  208.    would have the follow entry to let the mail reader know about this
  209.    file.
  210.  
  211.    ATTACH TEST.ZIP 782 12
  212.  
  213. ──────────────────────────────────────────────────────────────────────────────
  214.  
  215. Identifier: FILE <filename> [description]
  216.  
  217.    This is a method used to identify which files in the QWK archive
  218.    are file requests from the bulletin board.  It is upto the mail door
  219.    to decide whether or not to send these requested files, and this
  220.    is simply a method for the reader to acknowledge such files.
  221.  
  222.    For an example:  Say that the file GOODGAME.ARJ was requested and
  223.    added to the BOARDID.QWK archive.  When the mail reader expanded it,
  224.    it would not know which files had been requested by the user, nor
  225.    what the description of those files were.  Place using the FILE
  226.    identifier, the reader can easily present a nice listing of requested
  227.    files, rather than having to guess at the file names, and having
  228.    no idea of the description (although the description is optional).
  229.    In the GOODGAME.ARJ example, the mail door should add the following
  230.    line to the TOREADER.EXT file.
  231.  
  232.    FILE GOODGAME.ARJ This is a great new SVGA action game!
  233.  
  234.    or
  235.  
  236.    FILE GOODGAME.ARJ
  237.  
  238. ──────────────────────────────────────────────────────────────────────────────
  239.  
  240. Identifier: KEYWORD <data>
  241. Identifier: FILTER  <data>
  242. Identifier: TWIT    <data>
  243.  
  244.    These identifiers are for mail doors that can process keywords,
  245.    filters and twit listings. It is used only to inform the mail
  246.    reader of the settings used, in order to make offline configuration
  247.    much easier for the user.  For example, if the TOREADER.EXT file
  248.    had the following lines...
  249.  
  250.    KEYWORD olms
  251.    KEYWORD qwk
  252.    FILTER hacking
  253.    TWIT Death Wizard
  254.  
  255.    ...then the mail reader could present a list of these settings
  256.    and allow changes to be made to them, and create the proper
  257.    TODOOR.EXT lines to alter the configuration.
  258.  
  259. ══════════════════════════════════════════════════════════════════════════════
  260.  
  261.  File: TODOOR.EXT
  262.  ────────────────
  263.  
  264.   Desc: This file is simply an ASCII text file that is included
  265.         in the QWK packet, and contains information used by the
  266.         QWK mail door. (created by the mail reader) It must be
  267.         read back and processed by the door.
  268.  
  269.  Each line has an identifier, followed by the relevant information
  270.  for the extended information. (Arguments in < > are required,
  271.  and ones in [ ] are optional)
  272.  
  273.    AREA      <conference#> <settings>
  274.    RESET     <conference#> [#ofmessages]
  275.    ATTACH    <filename> <reply#>
  276.    FILE      <filename> [description]
  277.    REQUEST   <filename>
  278.    REQUEST   <conference#> <message#>
  279.    KEYWORD   [-]<keyword>
  280.    FILTER    [-]<filter>
  281.    TWIT      [-]<twit>
  282.  
  283. ──────────────────────────────────────────────────────────────────────────────
  284.  
  285. Identifier: AREA <conference#> <settings>
  286.  
  287.    This presents a list of CHANGES areas, and what the flag settings
  288.    for each area changed are. The <conference#> is the number of the area
  289.    that is to be changed and the <settings> contains the flags for that area.
  290.  
  291.    The possible flags are:
  292.  
  293.        D   drop area
  294.        a   for all messages
  295.        p   for personal messages
  296.        g   for general messages (personal and those addressed to 'ALL')
  297.  
  298.    In addition, some mail doors can add the following flags:
  299.  
  300.        w   if this area should include mail written by themselves
  301.        k   if this area should be included in keyword searches
  302.        f   if this area should be included in filter exclude searches
  303.  
  304.    For example, if a user had changed 2 areas, it might look like this:
  305.  
  306.    AREA 23 D
  307.    AREA 44 gf
  308.  
  309. ──────────────────────────────────────────────────────────────────────────────
  310.  
  311. Identifier: RESET <conference#> [#ofmessages]
  312.  
  313.    This presents a list of pointer changes to be made.  The pointers should
  314.    be changed for the <conference#> given.  If the [#ofmessages] is blank
  315.    then the pointer should be set back to the start of the message base,
  316.    otherwise it should be set back [#ofmessages] back from the end of
  317.    the message base.
  318.  
  319.    For example, if a user had modified 2 areas, it might look like this:
  320.  
  321.    RESET 23 100
  322.    RESET 44
  323.  
  324. ──────────────────────────────────────────────────────────────────────────────
  325.  
  326. Identifier: ATTACH <filename> <reply#>
  327.  
  328.    This is a method of creating messages that have files attached
  329.    to them.  The mail reader should pack the <filename> into the
  330.    BOARDID.REP file, and add this line in the TODOOR.EXT file,
  331.    which is also included in the BOARDID.REP file.
  332.  
  333.    The <reply#> is the number of the message in the reply packet.
  334.    For example, if the third message in the reply packet had the
  335.    file ATTACHME.ZIP attached to it:  The BOARDID.REP file should
  336.    contain the file ATTACHME.ZIP, BOARDID.MSG and the TODOOR.EXT
  337.    file.  The TODOOR.EXT file would contain the line...
  338.  
  339.    ATTACH ATTACHME.ZIP 3
  340.  
  341.    ...within it. NOTE! that it is upto the mail door whether or not
  342.    it will allow files to be attached to messages.  This is governed
  343.    by the mail door inserting the line CONTROLTYPE=ALLOWATTACH in
  344.    the DOOR.ID file.
  345.  
  346. ──────────────────────────────────────────────────────────────────────────────
  347.  
  348. Identifier: FILE <filename> [description]
  349.  
  350.    This is a method of uploading files in your mail packet.  These
  351.    are general public files, and should be processed for credit on
  352.    the bulletin board.
  353.  
  354.    For example, if you included a file called GOODGAME.ZIP in your
  355.    BOARDID.REP file for credit on the BBS, the mail reader should
  356.    insert the line...
  357.  
  358.    FILE GOODGAME.ZIP This is a great new game!
  359.  
  360.    ... in the TODOOR.EXT file.  It is upto the mail door whether
  361.    or not it accepts files to be uploaded with the mail packets.
  362.    This can be detected by the CONTROLTYPE=ALLOWFILES line
  363.    being added to the DOOR.ID file in the downloaded packet.
  364.  
  365.    The <reply#> is the number of the message in the reply packet.
  366.    For example, if the third message in the reply packet had the
  367.    file ATTACHME.ZIP attached to it:  The BOARDID.REP file should
  368.    contain the file ATTACHME.ZIP, BOARDID.MSG and the TODOOR.EXT
  369.    file.  The TODOOR.EXT file would contain the line...
  370.  
  371.    ATTACH ATTACHME.ZIP 3
  372.  
  373.    ...within it.
  374.  
  375. ──────────────────────────────────────────────────────────────────────────────
  376.  
  377. Identifier: REQUEST <filename>
  378. Identifier: REQUEST <conference#> <message#>
  379.  
  380.    These are file requests, either for files on the board, or files that
  381.    are attached to messages.
  382.  
  383.    "REQUEST bob.zip", would request the file BOB.ZIP from the BBS's file
  384.    collection, whereas "REQUEST 12 333", would request the files attached
  385.    to message #333 in conference #12.  It is upto the door to provide
  386.    security as to what can be requested.
  387.  
  388. ──────────────────────────────────────────────────────────────────────────────
  389.  
  390. Identifier: KEYWORD [-]<data>
  391. Identifier: FILTER  [-]<data>
  392. Identifier: TWIT    [-]<data>
  393.  
  394.    These identifiers are for changes made to the keywords, filters
  395.    and twit listings. It is used only to process CHANGES therefore
  396.    if the setting "KEYWORD bob" was given, it does not mean it is
  397.    the only keyword in the list, rather added to the list of keywords.
  398.    To remove an entry, precede it with a minus sign (-), so an example
  399.    to remove a keyword "bob" from the list of keywords would be
  400.    "KEYWORD -bob"
  401.  
  402. ══════════════════════════════════════════════════════════════════════════════
  403.  
  404.  Additional CONTROLTYPE= settings (DOOR.ID file)
  405.  ───────────────────────────────────────────────
  406.  
  407.     CONTROLTYPE=MAXKEYWORDS <#>  -> max keywords the door can handle
  408.     CONTROLTYPE=MAXFILTERS <#>   -> max filters the door can handle
  409.     CONTROLTYPE=MAXTWITS <#>     -> max twits the door can handle
  410.     CONTROLTYPE=ALLOWATTACH      -> if the door allows file attachments
  411.     CONTROLTYPE=ALLOWFILES       -> if the door allows files to be uploaded
  412.     CONTROLTYPE=ALLOWREQUESTS    -> if the door allows files to be requested
  413.     CONTROLTYPE=MAXREQUESTS      -> max number of daily file requests
  414.  
  415. ══════════════════════════════════════════════════════════════════════════════
  416.  
  417.  
  418.  History
  419.  ───────
  420.  
  421.  Rev 1.00, 10/12/94 : Released official standard
  422.  
  423.  
  424.                             - End Documentation -
  425.